//测试元注解

import java.lang.annotation.*;

public class Test01 {
    @MyAnnotation
    public void test() {

    }
}

// 一个类里面只能有一个public，因此此处添加会报错
// target定义了使用的范围，此外表示只有使用在方法上，这里数组表示多个作用范围
@Target(value = {ElementType.METHOD, ElementType.TYPE})
// Retention表示这个注解在什么地方有效
//      RUNTIME > CLASS > SOURCE
@Retention(RetentionPolicy.RUNTIME)
// Document表示是否将注解生成在javaDoc中
@Documented
// inherited表示子类可以继承父类的注解
@Inherited
@interface MyAnnotation {
    // 注解的参数：参数类型 + 参数名 + ()，这里与方法区分开
    // default表示默认值，即使用注解时为空的时候默认使用的值
    String name() default "";
}